// 引入路由文件这种的公共路由
import {
  constantRoutes
} from '../router';
// Layout 组件是项目中的主页面，切换路由时，仅切换Layout中的组件
import Layout from '@/layout';
import project from '@/views/project/project-list';
export function getAsyncRoutes(routes) {
  // console.log('routes',routes)
  const res = []
  // console.log("routes", routes)
  // 遍历路由数组去重组可用的路由
  routes.forEach(item => {
    // console.log('item',item)
    const newItem = {};
    newItem.meta = {}
    if (item.url.search("#") != -1) {
      newItem.component = Layout
      newItem.path = '/' + item.url.slice(1)
    } else
      /* 测试数据 以及buss/personlist*/
      if (item.url === '/admin/region/projectlist') {
        var url = '/region/project/project-list'
        newItem.path = url
        newItem.component = project;

        // console.log("/admin/region/projectlist", newItem);
      } else {
        var path_url = item.url.slice(7) //去除 /admin/
        // newItem.path = path_url.substring(path_url.indexOf('/')+1)
        newItem.path = path_url
        // console.log('newItem.path',newItem.path)
        var component_url = item.url.slice(7) //去除 /admin/
        // item.component 不等于 'Layout',则说明它是组件路径地址，因此直接替换成路由引入的方法
        newItem.component = resolve => require([`@/views/${component_url}`], resolve)
        // 此处用reqiure比较好，import引入变量会有各种莫名的错误
        // newItem.component = (() => import(`@/views/${item.component}`));
      }
    // newItem.name = item.menu_name
    newItem.meta.title = item.menu_name
    // newItem.meta.icon = item.icon
    newItem.meta.icon = 'el-icon-s-help'
    // console.log('newItem',newItem)
    // 若遍历的当前路由存在子路由，需要对子路由进行递归遍历
    if (item.list && item.list.length) {
      // console.log("item.list", item.list)
      newItem.children = getAsyncRoutes(item.list)
      // console.log('newItem.children子路由', newItem.children)
    }
    res.push(newItem)
  })
  // console.log('res',res)
  // 返回处理好且可用的路由数组
  return res
}
